package com.tzm.gaflow.web.domain;



import lombok.Getter;

public enum GlobalError implements BaseError {
    /**
     * 操作成功
     */
    OK(ErrorType.INFO, 200, "操作成功"),
    /**
     * 服务未找到
     */
    NOT_FOUND(ErrorType.WARN, 404, ""),
    /**
     * 没有权限
     */
    UNAUTHORIZED(ErrorType.WARN, 401, "未通过权限检查"),

    /**
     * 资源被冻结
     */
    FORBIDDEN(ErrorType.WARN, 402, ""),

    /**
     * 请求方法暂未开放
     */
    METHOD_NOT_ALLOWED(ErrorType.WARN, 405, "该资源暂未开放"),
    /**
     * 请求的格式不正确
     */
    NOT_ACCEPTABLE(ErrorType.WARN, 405, "资源只接受JSON格式数据"),
    /**
     * 数据被删除
     */
    GONE(ErrorType.WARN, 500, "访问的数据失效"),
    /**
     * 请求类型错误
     */
    INVALID_REQUEST(ErrorType.WARN, 422, "请求类型不被允许（POST/PUT/PATCH/GET/DELETE ）"),
    /**
     * 参数验证错误
     */
    UNPROCESABLE_ENTITY(ErrorType.WARN, 422, "请求格式不满足业务需求-参数错误"),
    /**
     * 服务器发生错误
     */
    INTERNAL_SERVER_ERROR(ErrorType.WARN, 500, "请求失败，请稍后再试"),
    ;
    @Getter
    private int code;
    @Getter
    private String message;
    @Getter
    private ErrorType type;

    GlobalError(ErrorType errorType, int code, String message) {
        this.message = message;
        this.code = code;
        this.type = errorType;
    }

    @Override
    public int getCode() {
        return 0;
    }
}
